Speech signals can usually be classified as falling within either a voiced region or an unvoiced region. In most languages, the voiced regions are normally more important than unvoiced regions because human beings can make more sound variations in voiced speech than in unvoiced speech. Therefore, voiced speech carries more information than unvoiced speech. To be able to compress, transmit, and decompress voiced speech with high quality is thus the forefront of modern speech coding technology.
It is understood that neighboring speech samples are highly correlated, especially for voiced speech signals. This correlation represents the spectrum envelop of the speech signal. In one speech coding approach called linear predictive coding (LPC), the value of the digitized speech sample at any particular time index is modeled as a linear combination of previous digitized speech sample values. This relationship is called prediction since a subsequent signal sample is thus linearly predictable according to earlier signal values. The coefficients used for the prediction are simply called the LPC prediction coefficients. The difference between the real speech sample and the predicted speech sample is called the LPC prediction error, or the LPC residual signal. The LPC prediction is also called short-term prediction since the prediction process takes place only with few adjacent speech samples, typically around 10 speech samples.
The pitch also provides important information in the voiced speech signals. One might already have experienced that by varying the pitch using a tape recorder, a male voice may be modified or sped up, to sound like a female voice, and vice versa, since the pitch describes the fundamental frequency of the human voice. Pitch also carries voice intonations which are useful for manifesting happiness, anger, questions, doubt, etc. Therefore, precise pitch information is essential to guarantee good speech reproduction.
For speech coding purposes, the pitch is described by the pitch lag and the pitch prediction coefficient (or pitch gain). A further discussion of pitch lag estimation is described in copending application entitled "Pitch Lag Estimation System Using Frequency-Domain Lowpass Filtering of the Linear Predictive Coding (LPC) Residual," Ser. No. 08/454,477, filed May 30, 1995, invented by Huan-Yu Su, and now allowed, the disclosure of which is incorporated herein by reference. Advanced speech coding systems require efficient and precise extraction (or estimation) of the LPC prediction coefficients, the pitch information (i.e. the pitch lag and the pitch prediction coefficient), and the excitation signal from the original speech signal, according to a speech reproduction model. The information is then transmitted through the limited available bandwidth of the media, such as a transmission channel (e.g., wireless communication channel) or storage channel (e.g., digital answering machine). The speech signal is then reconstructed at the receiving side using the same speech reproduction model used at the encoder side.
Code-excited linear-prediction (CELP) coding is one of the most widely used LPC based speech coding approaches. A speech regeneration model is illustrated in FIG. 1. The gain scaled (via 116) innovation vector (115) output from a prestored innovation codebook (114) is added to the output of the pitch prediction (112) to form the excitation signal (120), which is then filtered through the LPC synthesis filter (110) to obtain the output speech.
To guarantee good quality of the reconstructed output speech, it is essential for the CELP decoder to have an appropriate combination of LPC filter parameters, pitch prediction parameters, innovation index, and gain. Thus, determining the best parameter combination that minimizes the perceptual difference between the input speech and the output speech is the objective of the CELP encoder (or any speech coding approach). In practice, however, due to complexity limitations and delay constraints, it has been found to be extremely difficult to exhaustively search for the best combination of parameters.
Most proposed speech codecs (coders/decoders) operating at a medium to low bit-rate 4-16 kbits/sec) group digitized speech samples in blocks (10-40 msec), each block being called a speech coding frame. As described in FIG. 2, after preprocessing (210), LPC analysis and quantization (212) are performed once per coding frame, while pitch analysis (214) and innovation signal (code vector) analysis (224) are performed once per subframe (216) (2-8 msec). Typically, each frame includes two to four subframes. This frame and subframe approach is based upon the observation that the LPC information is more slowly changing in speech as compared to the pitch information or the innovation information. Therefore, the minimization of the global perceptually weighted coding error is replaced by a series of lower dimensional minimizations over disjoint temporal intervals. This procedure results in a significantly lower complexity requirement to realize a CELP speech coding system. However, the drawback to this frame and subframe approach is that the pitch lag information is generally determine and scalar quantized in each successive subframe such that the bit-rate required to transmit the pitch lag information is too high for low bit-rate applications. For example, a typical rate of 1.3 kbits/sec is usually necessary to provide adequate pitch lag information to maintain good speech reproduction. Although such a requirement in bandwidth is not difficult to satisfy in speech coding systems operating at a bit-rate of 8 kbits/sec or higher, using 1.3 kbits/sec to transmit pitch lag information alone is excessive for low bit-rate coding applications operating, for example, at 4 kb/s.
In the low bit-rate speech coding field, advanced high quality parameter quantization schemes are widely used and have become essential. Vector quantization (VQ) is one of the most important contributors to achieve low bit-rate speech coding. In comparison to the simple scalar quantization (SQ) scheme, VQ results in much better quality at the same bit-rate, or same quality at much lower bit-rate. Unfortunately, VQ is not applicable to the pitch lag information quantization according to the current CELP speech coding model. To better explain this idea, the parameter generation procedure for the pitch lag in a CELP coder will be examined below.
Referring back to FIG. 2, it can be seen during the pitch analysis at (214) that the conventional pitch prediction procedure in a CELP coder is a feed back process, which takes past excitation signals from past subframes as an input to the pitch prediction module, and produces a pitch contribution vectors E.sub.LAG. Since pitch prediction models the low periodicity of the speech signal, it is also called long-term prediction because the prediction terms are longer than those of LPC. For a given subframe, the pitch lag ("Lag") is searched around a range, typically between 18 and 150 speech samples to cover the majority of speech variations of the human being. The search is performed according to a searching step distribution. This distribution is predetermined by a compromise between high temporal resolution and low bit-rate requirements.
For example, in the North American Digital Cellular Standard IS-54, the pitch lag searching range is predetermined to be from 20 to 146 samples and the step size is one sample, e.g., possible pitch lag choices around 30 are 28, 29, 30, 31, and 32. Once the optimal pitch lag is found, there is an index associated with its value, for example, 29. In another speech coding standard, the International Telecommunication Union (ITU) G.729 speech coding standard, the pitch lag searching range is set to be [191/3,143], and a step size of 1/3 is used in the range of [191/3,842/3]. Accordingly, possible pitch lag values around 30 may be 29, 291/3, 292/3, 30, 301/3, 302/3, 31, etc. In some cases, a non-integer pitch lag (e.g. 291/3) is more suitable for a current speech subframe than an integer pitch lag (e.g. 29).
Once the best pitch lag ("Lag") is found (218) for the current speech subframe, a pitch prediction coefficient .beta. and a pitch prediction contribution e(n-Lag) may be determined (220). Taking the pitch prediction coefficient .beta. into account, the innovation codebook analysis (224) can be performed in that the determination of the innovation code vector C.sub.i depends on the pitch prediction coefficient B of the current subframe. The current excitation signal e(n) for the subframe (228) is the gain scaled linear combination of two contributions (the codebook contribution and the pitch prediction contribution) and it will be the input signal for the next pitch analysis (214), and so forth for subsequent subframes (230), (232). As is well-known, this parameter determination procedure, also called closed-loop analysis, becomes a causal system. That is, the determination of a particular subframe's parameters depends on the parameters of the immediately preceding subframes. Thus, once the parameters for subframe i, for example, are selected, their quantization will impact the parameter determination of the subsequent subframe i+1. The drawback of this approach, however, is that the sets of parameters have a high level of dependence on each other. Once the parameters for subframe i+1 are determined, the parameters for the previous subframe i cannot be modified without harmfully impacting the speech quality. Consequently, because the vector quantization is not a lossless quantization scheme, the pitch lags obtained by this extraction scheme must be scalar quantized, resulting in low quantization efficiency.
Furthermore, in a typical CELP coding system, the encoder requires extraction of the "best" excitation signal or, equivalently, the best set of the parameters defining the excitation signal for a given subframe. This task, however, is functionally infeasible due to computational considerations. For example, it is well understood that coded speech of reasonable quality requires the availability of at least 50.alpha. values, 20.beta. values, 200 pitch lag ("Lag") values, and 500 codevectors. The G.729 and G.723. 1 Standards require even more values. Moreover, this evaluation should be performed at subframe frequency on the order of about 200/second. Consequently, it can readily be determined that a straight forward evaluation approach requires more than 10.sup.10 vector operations per second.